package com.example.wendao.common;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import com.example.wendao.view.utils.BitmapUtils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class ImgUtils {

    /**
     *
     * @param map key为序号，value为图片路径的Map
     * @return    文件对应的 ByteArrayOutputStream 对象
     */
    public static List<byte[]> getBaosBytePathMap(Map<Integer, String> map) {
        return imgShiftToBaos(getBitmapByImgs(map));
    }

    /**
     *
     * @param bytes     要转换成位图的数组
     * @return          转换成功的位图对象，如果数组为空返回null
     */
    public static Bitmap barrayToBitmap(byte[] bytes) {
        if (bytes.length != 0){
            return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
        }
        return null;
    }

    private static List<Bitmap> getBitmapByImgs(Map<Integer, String> map) {
        List<Bitmap> bitmaps = new ArrayList<>();
        for (int i = 0; i < map.size(); i++) {
            String src = map.get(i);
            Bitmap bm = BitmapUtils.getImage(src);
            bitmaps.add(bm);
        }
        return bitmaps;
    }

    private static List<byte[]> imgShiftToBaos(List<Bitmap> bitmaps) {
        List<byte[]> list = new ArrayList<>();
        for (Bitmap bitmap : bitmaps){
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
            list.add(baos.toByteArray());
            try {
                baos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return list;
    }


}
